A flash memory is a non-volatile data storage device that can be electrically programmed (or rewritten). Consequently, the flash memory is widely used to store data.
FIG. 1 is a schematic circuit diagram illustrating a conventional flash memory. As shown in FIG. 1, the flash memory comprises a memory array 10 and a path control circuit 18. The memory array 10 comprises plural memory units. For clarification and brevity, only two memory units 11 and 12 are shown. Each of the memory units 11 and 12 comprises a select transistor and a storage transistor. For example, the storage transistor is a metal-oxide-semiconductor transistor comprising a gate terminal, a drain terminal, a source terminal and a charge storage structure (e.g. a floating gate). The storage transistor Ma of the first memory unit 11 and the storage transistor Mb of the second memory unit 12 can store data (e.g. one bit of data).
Please refer to FIG. 1 again. The first memory unit 11 comprises a select transistor Pa and a storage transistor Ma. The second memory unit 12 comprises a select transistor Pb and a storage transistor Mb. The select transistors Pa and Pb are p-channel metal-oxide-semiconductor transistors. The storage transistors Ma and Mb are p-channel metal-oxide-semiconductor transistors with charge storage structures. The source terminals of the select transistors Pa and Pb are connected to a power source voltage V1. The gate terminals of the select transistors Pa and Pb are connected to a node n0, and further connected to a select voltage Vsel. The gate terminals of the storage transistors Ma and Mb are connected to a node n1 (i.e. a control line terminal) through a control line and further connected to a program voltage Vpgm. The drain terminals of the storage transistors Ma and Mb are connected to the path control circuit 18.
During the process of programming the first memory unit 11, the first memory unit 11 is enabled by the path control circuit 18, but the other memory units are disabled. According to the settings, the select transistor Pa is turned on in response to the select voltage Vsel. Consequently, a first programming current Ipgm1 flows through the drain terminal and the source terminal of the storage transistor Ma according to the program voltage Vpgm. When the first programming current Ipgm1 flows through the storage transistor Ma, charges (e.g. electrons) are injected into the floating gate of the storage transistor Ma. Consequently, the threshold voltage of the storage transistor Ma is changed, and the storage transistor Ma is programmed.
After the first memory unit 11 is programmed, the process of programming the second memory unit 12 is continuously done. Similarly, during the process of programming the second memory unit 12, the second memory unit 12 is enabled by the path control circuit 18, but the other memory units are disabled. According to the settings, the select transistor Pb is turned on in response to the select voltage Vsel. Consequently, a second programming current (not shown) flows through the drain terminal and the source terminal of the storage transistor Mb according to the program voltage Vpgm. When the second programming current flows through the storage transistor Mb, charges (e.g. electrons) are injected into the floating gate of the storage transistor Mb. Consequently, the threshold voltage of the storage transistor Mb is changed, and the storage transistor Mb is programmed.
The above procedures are repeatedly done until all of the memory units are programmed.
From the above discussions, the memory units of the conventional flash memory should be sequentially programmed one by one. That is, only one bit of data can be programmed at each time. Moreover, different storage transistors usually have different properties. During the programming process, the magnitude of the program voltage Vpgm should be adjusted according to the properties of respective storage transistors. Since the conventional flash memory is unable to program multiple bits of data simultaneously, the programming time period of the conventional flash memory is very long.